1.1 Go语言的设计初衷与发展历程
本节我们主要针对:Go语言是怎么产生的?Go语言的发展怎么样?两个方面进行探讨。
通过本节的学习帮助我们了解Go语言的前世今生,也便于我们之后对于Go语言的理解。
设计初衷
要了解Go语言的设计初衷,我们需要先了解一下设计时的背景。
2007年的Google业务已经做的很大。像这种规模的团队,代码可能已经多到很难维护,一个程序或者软件就可能多达上百万行代码。
在这种背景下,出现了很多问题:
代码复杂,很多系统难以维护
软件规模变大,编译一次都需要很长时间
开发效率低下,现有语言实现一个简单的功能都需要写很多代码
资源占用增大,由于语言的特性导致每一个应用都需要占用很多服务器
基于上面的问题,Google开始了Go语言的设计,主要就是解决上面的问题。所以在开始设计的时候,Go语言就定下了基调,它需要解决下面的问题,同时也是它具备的特性:
代码简洁
简单易学
编译快速
开发效率极高
并发编程简单
资源占用极低
我们也可以看到,现在版本的Go语言可以说基本实现了上面的要求,这也是它得以快速发展的关键。
我们从 Go 语言的命名也基本可以看出其特性。Go 语言的命名来自于 gopher,这是一种生活在加拿大的小地鼠,它最大的特点就是挖洞的速度特别快,所以进行简写之后,将这门变成语言命名为了 Go
发展历程
Go语言在2007年被提出来以后,开始了内部开发工作。它的关键历程可以分为下面几个阶段:
2007年9月2日:在Google内部开始开发。2009年11月10日:正式以开源形式发布。2012年3月28日:Go 1.0版本发布,这是第一个稳定的发行版,包含了基础的语言特性和标准库。2015年8月19日:Go 1.5版本发布,引入了重要的新特性,如vendor目录支持和新的内存模型。2016年2月17日:Go 1.7版本发布,增加了新的错误处理模式,并对性能进行了优化。2018年2月16日:Go 1.10版本发布,包含了对Modules的支持,这是全新的依赖管理方式。2019年2月25日:Go 1.13版本发布,增加了对arm64架构的官方支持,并对性能进行了优化。2020年1月29日:Go 1.15版本发布,引入了新的错误处理方式,并对性能进行了优化。2022年2月15日:Go 1.18版本发布,支持泛型,并对编译器和运行时进行了优化。2022年8月2日:Go 1.19版本发布,对泛型性能进行了优化,以及各种性能及实现的改进。2023年2月2日:Go 1.20版本发布,支持切片与数组的转换,解决了泛型引入所导致的编译速度降低问题。2024年2月6日:Go 1.22版本发布,对for循环进行了更新,并对编译进行了进一步优化。
从上面的版本发布日程我们可以看出,Go语言的发布还是很频繁的。比较重要的一点是他们的初衷没有改变,可以看到性能优化是他们一直追求的。
我们可以通过 点击这里 查看Go语言详细的版本发布历史,通过版本发布历史我们可以清晰的了解到Go语言的发展历程。